<?php 
class Log {
    const LOGNAME = "curr.log";
	const FPATH = './' ;
	# 写日志
	public static function write($cont){
		// 类型
		$cont = date("Y-m-d G:i:s => ",time()).$cont; 
		$cont .="\r\n";		//追加换行
		// 先判断日志文件是否该备份（超出1M便备份）
		$path = self::isBak();

		$fh = fopen($path, 'ab');
		fwrite($fh,$cont);
		fclose($fh);
	}

	public static function bak(){
		$path = self::FPATH."data/log/" . self::LOGNAME;
		$bak =  self::FPATH."data/log/" .date('y-m-d').mt_rand(10000,99999).".bak";
		return rename($path, $bak);
	}
	public static function cdDir($wdir){
		// 如果目录存在就不用创建了，直接返回True
		if (is_dir($wdir))return true;
		// 如果父目录存在，则直接创建子目录。
		if (is_dir(dirname($wdir))) return mkdir($wdir);
		// 递归创建父目录
		self::cdDir(dirname($wdir));
		return mkdir($wdir);
	}
	public static function isBak(){
		$path = self::FPATH."data/log/" . self::LOGNAME;
		
		if (!file_exists($path)) {
			self::cdDir(dirname($path));
			return $path;
		}
		clearstatcache(true,$path);
		$size = filesize($path);
		// 小于1M 还可以继续写
		if ($size <= 1024*1024)  return $path;
		// 大于1M 备份日志
		if (!self::bak()) {
			return $path;
		}else{
			touch($path);
			return $path;
		}
	}
}
